# -*- coding: utf-8 -*-

###########################################################################
#
#   Copyright (c) 2020  Bresee, Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###########################################################################


import time
import utils.pgsql.base.pgconn as pgconn

"""
paycount management
add 
delete
modify
...
"""
_tblName = "tbl_paycount"

_DB_SCRIPT = f"""
CREATE TABLE IF NOT EXISTS {_tblName} (
                "paycountId" SERIAL PRIMARY KEY ,        
                "caseId"  INTEGER NOT NULL default 0,  
                "operatorId"   INTEGER NOT NULL default 0,  
                "count"  INTEGER NOT NULL default 0,  
                "date" VARCHAR(32) NOT NULL default ''  
                );
"""


class PgcountPay:
    def __init__(self):
        self._pgConn = pgconn.pgMainConn

    def __del__(self):
        pass

    def createTbl(self):
        """
        create
        :return:
        """
        return self._pgConn.exec(_DB_SCRIPT)

    # def addpay(self, dic) -> str:
    #     if "createTime" not in dic:
    #         dic["createTime"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

    #     sql_key = '\"' + '\", \"'.join(dic.keys()) + '\"'
    #     sql_val = ''
    #     for key in dic:
    #         if type(dic[key]) is str:
    #             sql_val = sql_val + '\'' + dic[key] + '\','
    #         else:
    #             sql_val = sql_val + str(dic[key]) + ' ,'

  
    #     sql = "insert into {} ({}) values ({}) ".format(_tblName, sql_key, sql_val[:-1])
    # #     return self._pgConn.exec(sql)

    # def modify(self, outTradeNo, cashfee, dic) -> bool:
    #     dic["updateTime"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

    #     sql_key = ''
    #     for key in dic:
    #         if type(dic[key]) is str:
    #             sql_key = sql_key + '\"' + key + '\"' + ' = \'' + dic[key] + '\','
    #         else:
    #             sql_key = sql_key + '\"' + key + '\"' + ' = ' + str(dic[key]) + ' ,'


    #     sql =  "update {} set {} where  ".format(_tblName, sql_key[:-1])  + f""" "outTradeNo" = '{outTradeNo}' and "totalFee" = '{cashfee}' """
        
    #     return self._pgConn.exec(sql)

    # def allCase(self, caseId) -> list:
    #     sql = f"""select * from {_tblName} where "caseId" = {caseId} order by "createTime" desc LIMIT 200"""
    #     return self._pgConn.exec_fetchall(sql)

    # def PageCase(self, caseId, pageNo, pageSize) -> list:
    #     sql = f"""select * from {_tblName} where "caseId" = {caseId} order by "createTime" LIMIT {pageSize} OFFSET {(pageNo-1) * pageSize}"""
    #     return self._pgConn.exec_fetchall(sql)

    # def PageAll(self, pageNo, pageSize) -> list:
    #     sql = f"""select * from {_tblName} order by "createTime" LIMIT {pageSize} OFFSET {(pageNo-1) * pageSize}"""
    #     return self._pgConn.exec_fetchall(sql)

    # def GetAllYesterDay(self, date) -> list:
    #     sql = f"""select * from {_tblName} where Date("updateTime") = '{date}' order by "createTime" """
    #     return self._pgConn.exec_fetchall(sql)

    # def chanpay(self, channelId, startTime, endTime) -> list:
    #     sql = "select * from tbl_techpay  where \"channelId\" = '{}' and  \"createTime\" between '{}' and '{}' ".format(
    #         channelId, startTime, endTime
    #     )
    #     print(sql)

    #     return self._pgConn.exec_fetchall(sql)
